export const state = () => {
    return {
        userInfo: {
            token: '',
            user: ''
        }
    }
}
// mutation 规定对数据进行修改的方法,不能进行异步操作.
export const mutations = {
    // mutations 是一个对象
    // 里面的每一个属性都是一个函数
    // 这里的函数专门用来修改这个仓库的数据 state
    setUserInfo(state, data) {
        // 所有 Mutation 函数都可以接受两个参数
        // 第一是 state 对象本身
        // 第二是外面调用时传入的数据
        // 我们现在想修改 userInfo
        // 只能做这一步,不能进行异步操作this.$axios(...
        state.userInfo = data;
    }
}

//外面调用mutations用commit,调用actions用dispatch

// 将登陆这个异步请求, 封装到 vuex 里面
export const actions = {
    // login( store , data) {
    // 1.当前仓库store的本身
    // 2.外部调用时额外的数据
    //如果外面想调用,需要return出去,分别是 return login和return res ,外面后用then去接
    login({ commit }, data) {
        this.$axios({
            url: "/accounts/login",
            method: "post",
            data
        }).then(res => {
            // console.log(res.data);
            // store.commit('setUserInfo', res.data)
            commit('setUserInfo', res.data)
        });

    }
}